<script>
export default {
  utcMap: {
    '12': '国际换日线',
    '11': '中途岛标准时间',
    '10': '夏威夷-阿留申标准时间',
    '9': '阿拉斯加标准时间',
    '8': '太平洋标准时间',
    '7': '北美山区标准时间',
    '6': '北美中部标准时间',
    '5': '北美东部标准时间',
    '4': '大西洋标准时间',
    '3': '南美标准时间',
    '2': '巴西时间',
    '1': '佛得角标准时间',
    '0': '欧洲西部时区',
    '-1': '欧洲中部时区',
    '-2': '欧洲东部时区',
    '-3': '莫斯科时区',
    '-4': '中东时区A',
    '-5': '中东时区B',
    '-6': '孟加拉标准时间',
    '-7': '中南半岛标准时间',
    '-8': '东亚标准时间/中国标准时间',
    '-9': '远东标准时间',
    '-10': '澳大利亚东部标准时间',
    '-11': '瓦努阿图标准时间',
    '-12': '太平洋标准时间B'
  },
  getDateTime: function () {
    // 得到本地时间
    var d = new Date()

    // 得到1970年一月一日到现在的秒数
    var local = d.getTime()

    // 本地时间与GMT时间的时间偏移差
    var offset = d.getTimezoneOffset() * 60000
    // 获取本地时区，判断如果是负的则相加得到格林尼治时间，正的则相减
    var localUtc = new Date().getTimezoneOffset() / 60

    // 得到现在的格林尼治时间
    var utcTime
    var utcName = this.utcMap[localUtc + '']
    if (localUtc > 0) {
      utcTime = local - offset
    } else {
      utcTime = local + offset
    }
    // 得到时区的绝对值
    var localTime = utcTime + 3600000 * Math.abs(localUtc)
    var nd = new Date(localTime)
    var YY = nd.getFullYear()
    var MM = this.toDouble(nd.getMonth() + 1)
    var dd = this.toDouble(nd.getDate())
    var hh = this.toDouble(nd.getHours())
    var mm = this.toDouble(nd.getMinutes())
    var ss = this.toDouble(nd.getSeconds())
    return {
      dateTime: YY + '-' + MM + '-' + dd + ' ' + hh + ':' + mm + ':' + ss,
      utcName: utcName
    }
  },
  toDouble: function (n) {
    n -= 0
    if (n < 10) {
      return '0' + n
    } else {
      return n
    }
  }
}
</script>
<style scoped>
</style>
